SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TTCNTB_EMPR_Q01]        
/*-------------------------------------------------------------*/        
/*----- Cliente           : OFISIS S.A.                    ----*/        
/*----- Empresa           : OFISIS S.A.                    ----*/        
/*----- Sistema           : Contabilidad                   ----*/        
/*----- Modulo            : Administracion                 ----*/        
/*----- Programa          : Impresion de Num. Contabilidad ----*/        
/*----- Nombre            : SP_TTCNTB_EMPR_Q01             ----*/        
/*----- Script            : TTCNTB_EMPR                    ----*/        
/*----- Desarrollado por  : Martin Garcia Farfan           ----*/        
/*----- Fecha             : 23/03/2001                     ----*/        
/*----- Base de Datos     : SQL Server                     ----*/        
/*----- Version BD        : 7.0                            ----*/        
/*-------------------------------------------------------------*/       
/*-------------------------------------------------------------*/       
/*----  MODIFICADO  POR 1 : PERCY GARCIA                   ----*/      
/*----  FECHA MODIF       : 05/04/2004                     ----*/      
/*----  DETALLE MODIF     : ACTUALIZACION CAMBIO HECHO PARA ORACLE ----*/       
/*----  CASO NUMERO CONTABILIDAD SEA NULO                  ----*/       
/*--------------------------------------------------------------*/       
/*-------------------------------------------------------------*/       
/*----  MODIFICADO  POR 2 : PERCY GARCIA                   ----*/      
/*----  FECHA MODIF       : 03/06/2004                     ----*/      
/*----  DETALLE MODIF     : NUEVOS CAMPOS AJUSTE POR INFLACION Y ACTIVOS ----*/       
/*--------------------------------------------------------------*/      
/*-------------------------------------------------------------*/       
/*----  MODIFICADO  POR 3 : PERCY GARCIA                   ----*/      
/*----  FECHA MODIF       : 11/08/2004                     ----*/      
/*----  DETALLE MODIF     : nuevo id dif cuentas dif cambio----*/       
/*--------------------------------------------------------------*/     
/*-------------------------------------------------------------*/       
/*----  MODIFICADO  POR 4 : PERCY GARCIA                   ----*/      
/*----  FECHA MODIF       : 03/03/2006                     ----*/      
/*----  DETALLE MODIF     : SE VALIDO QUE APAREZCA LAS 
OPERACIONES DE EXCLUSION PARA FAS 52 ----*/       
/*--------------------------------------------------------------*/     
/*-------------------------------------------------------------*/       
/*----  MODIFICADO  POR 5 : PERCY GARCIA                   ----*/      
/*----  FECHA MODIF       : 22/08/2006                     ----*/      
/*----  DETALLE MODIF     : NUEVO CAMPO TTCNTB_EMPR ,RENTA NO DOMICILIADO ----*/       
/*--------------------------------------------------------------*/     
/*-------------------------------------------------------------*/        
/*----- Drop procedure SP_TTCNTB_EMPR_Q01                  ----*/        
/*----- Grant all on SP_TTCNTB_EMPR_Q01 to PUBLIC          ----*/        
/*----- SP_TTCNTB_EMPR_Q01    '01', 1                   ----*/        
/*-------------------------------------------------------------*/        
(@ISCO_EMPR  Varchar(02),        
 @INNU_CNTB_EMPR Integer)        
As        
        
Declare        
 @VNNU_CON1   Integer,        
 @VNNU_CON2   Integer,        
 @VSNU_CON3   Char(04),        
 @VSDE_IDEN   Varchar(50)        
        
Create Table #TWCNTB_EMPR_Q01_1        
(NU_CNTB_EMPR Int NULL,       
 CO_MONE char(03) Null,        
 DE_CNTB_EMPR varchar(80) Null,        
 ST_GENE_ASTO char(03) Null,        
 ID_CNTA char(03) Null,        
 ID_CNTA_DESC varchar(80) Null,        
 CO_CNTA_EMPR varchar(10) Null,        
 DE_CNTA_EMPR varchar(80) Null,        
 NU_FACT_REDO   numeric(15,6) Null,     
 NU_ORDE Int NULL)         
        
 Select @VNNU_CON1 = 1001        
        
 WHILE @VNNU_CON1 <= 1033--1032---1031--1029        
 Begin        
  Select @VSNU_CON3 = Substring(Convert(Varchar(04), @VNNU_CON1),2,3)        
        
   IF @VSNU_CON3 = '001'        
     Select @VSDE_IDEN = 'REGISTRO DE COMPRAS'         
   ELSE IF @VSNU_CON3 = '002'          
     Select @VSDE_IDEN = 'REGISTRO DE VENTAS'         
   ELSE IF @VSNU_CON3 = '003'          
     Select @VSDE_IDEN = 'DIF. DE CAMBIO DOCS. CANCELADOS'         
   ELSE IF @VSNU_CON3 = '004'          
     Select @VSDE_IDEN = 'GANANCIA POR DIFERENCIA DE CAMBIO'         
   ELSE IF @VSNU_CON3 = '005'          
     Select @VSDE_IDEN = 'PERDIDA POR DIFERENCIA DE CAMBIO'         
   ELSE IF @VSNU_CON3 = '006'          
     Select @VSDE_IDEN = 'GANANCIA POR REDONDEO'         
   ELSE IF @VSNU_CON3 = '007'          
     Select @VSDE_IDEN = 'PERDIDA POR REDONDEO'         
   ELSE IF @VSNU_CON3 = '008'          
     Select @VSDE_IDEN = 'IMPUESTO A LA RENTA'         
   ELSE IF @VSNU_CON3 = '009'          
     Select @VSDE_IDEN = 'IMPUESTO GENERAL A LAS VENTAS'         
   ELSE IF @VSNU_CON3 = '010'          
     Select @VSDE_IDEN = 'QUINTA CATEGORIA'         
   ELSE IF @VSNU_CON3 = '011'          
     Select @VSDE_IDEN = 'ASIENTOS DE GESTION'         
   ELSE IF @VSNU_CON3 = '012'          
     Select @VSDE_IDEN = 'ASIENTOS DE CIERRE'         
   ELSE IF @VSNU_CON3 = '013'          
     Select @VSDE_IDEN = 'ASIENTOS DE APERTURA'         
   ELSE IF @VSNU_CON3 = '014'          
     Select @VSDE_IDEN = 'IMPUESTO EXTRAORDINARIO DE SOLIDARIDAD'         
   ELSE IF @VSNU_CON3 = '015'          
     Select @VSDE_IDEN = 'AJUSTE POR INFLACION'         
   ELSE IF @VSNU_CON3 = '016'          
     Select @VSDE_IDEN = 'FLUJO DE EFECTIVO'         
   ELSE IF @VSNU_CON3 = '017'          
     Select @VSDE_IDEN = 'IMPORTACIONES'         
   ELSE IF @VSNU_CON3 = '018'          
     Select @VSDE_IDEN = 'CUARTA CATEGORIA'         
   ELSE IF @VSNU_CON3 = '019'          
     Select @VSDE_IDEN = 'OTROS TRIBUTOS'         
   ELSE IF @VSNU_CON3 = '020'          
     Select @VSDE_IDEN = 'EXTORNO'         
   ELSE IF @VSNU_CON3 = '021'          
     Select @VSDE_IDEN = 'BANCOS'         
   ELSE IF @VSNU_CON3 = '022'          
     Select @VSDE_IDEN = 'DISTRIBUCION AUXILIAR'         
   ELSE IF @VSNU_CON3 = '023'          
     Select @VSDE_IDEN = 'DISTRIBUCION ACTIVIDAD'         
   ELSE IF @VSNU_CON3 = '024'          
     Select @VSDE_IDEN = 'IGV RETENCIONES'          
   ELSE IF @VSNU_CON3 = '025'          
     Select @VSDE_IDEN = 'CANCELACIONES'         
   ELSE IF @VSNU_CON3 = '026'          
     Select @VSDE_IDEN = 'EXPORTACIONES'         
   ELSE IF @VSNU_CON3 = '027'          
     Select @VSDE_IDEN = 'DIF. CAMBIO SALDOS PENDIENTES'         
   ELSE IF @VSNU_CON3 = '028'              
     Select @VSDE_IDEN = 'ACTIVOS FIJOS'         
   ELSE IF @VSNU_CON3 = '029'          
     Select @VSDE_IDEN = 'PRODUCCION'         
   ELSE IF @VSNU_CON3 = '030'          
     Select @VSDE_IDEN = 'INVENTARIO'         
   ELSE IF @VSNU_CON3 = '031'          
     Select @VSDE_IDEN = 'FAS 52 A SER EXCLUIDAS'
   ELSE IF @VSNU_CON3 = '032'          
     Select @VSDE_IDEN = 'DISTRIBUCION CUENTA'
   ELSE IF @VSNU_CON3 = '033'          
     Select @VSDE_IDEN = 'IMPUESTO RENTA NO DOMICILIADOS'

                
 If @INNU_CNTB_EMPR Is NULL       
   Begin      
      Insert into #TWCNTB_EMPR_Q01_1       
      Select T1.NU_CNTB_EMPR, T1.CO_MONE, T1.DE_CNTB_EMPR, T1.ST_GENE_ASTO, NULL,        
      NULL, NULL, NULL, T1.NU_FACT_REDO, 1        
      From TTCNTB_EMPR T1  
      Where T1.CO_EMPR = @ISCO_EMPR  
 And NOT EXISTS (SELECT * FROM TTIDEN_CNTA T2  
  WHERE T2.CO_EMPR = T1.CO_EMPR  
  And t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR  
  And t2.ID_CNTA = @VSNU_CON3  
  And t2.NU_ANNO = 9999)  
      Union  
      Select T3.NU_CNTB_EMPR, t3.CO_MONE, t3.DE_CNTB_EMPR, t3.ST_GENE_ASTO, t1.ID_CNTA,      
             'CUENTAS DE ' +  @VSDE_IDEN, t1.CO_CNTA_EMPR, t2.DE_CNTA_EMPR,      
      t3.NU_FACT_REDO, 1      
      From TTIDEN_CNTA t1, TMPLAN_EMPR t2, TTCNTB_EMPR t3      
      Where t1.CO_EMPR =  @ISCO_EMPR      
          and t1.ID_CNTA =  @VSNU_CON3      
          and t1.NU_ANNO = 9999      
          and t2.CO_EMPR = t1.CO_EMPR      
          and t2.NU_ANNO = t1.NU_ANNO      
          and t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR       
          and t3.CO_EMPR = t1.CO_EMPR      
          and t3.NU_CNTB_EMPR = t1.NU_CNTB_EMPR      
      
    Insert into #TWCNTB_EMPR_Q01_1       
      Select T1.NU_CNTB_EMPR, T1.CO_MONE, T1.DE_CNTB_EMPR, T1.ST_GENE_ASTO, NULL,        
      NULL, NULL, NULL, T1.NU_FACT_REDO, 2        
      From TTCNTB_EMPR T1  
      Where T1.CO_EMPR = @ISCO_EMPR  
 And NOT EXISTS (SELECT * FROM TTIDEN_OPER T2   
  WHERE T2.CO_EMPR = T1.CO_EMPR  
  And t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR  
  And t2.ID_OPRC = @VSNU_CON3)  
      Union  
    Select T3.NU_CNTB_EMPR, t3.CO_MONE, t3.DE_CNTB_EMPR, t3.ST_GENE_ASTO, t1.ID_OPRC,      
    'OPERACIONES DE ' +  @VSDE_IDEN, t1.CO_OPRC_CNTB, t2.DE_OPRC,      
    t3.NU_FACT_REDO, 2      
    From TTIDEN_OPER t1, TMOPRC_CNTB t2, TTCNTB_EMPR t3        
    Where t1.CO_EMPR =  @ISCO_EMPR       
       and t1.ID_OPRC =  @VSNU_CON3      
       and t2.CO_EMPR = t1.CO_EMPR       
       and t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB      
       and t3.CO_EMPR = t1.CO_EMPR      
       and t3.NU_CNTB_EMPR = t1.NU_CNTB_EMPR      
  End       
      
Else      
  Begin       
      Insert into #TWCNTB_EMPR_Q01_1        
      Select T1.NU_CNTB_EMPR, T1.CO_MONE, T1.DE_CNTB_EMPR, T1.ST_GENE_ASTO, NULL,        
      NULL, NULL, NULL, T1.NU_FACT_REDO, 1        
      From TTCNTB_EMPR T1  
      Where T1.CO_EMPR = @ISCO_EMPR  
        And T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR  
 And NOT EXISTS (SELECT * FROM TTIDEN_CNTA T2 WHERE T2.CO_EMPR = T1.CO_EMPR  
  And t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR  
  And t2.ID_CNTA = @VSNU_CON3  
  And t2.NU_ANNO = 9999)  
      Union  
      Select T3.NU_CNTB_EMPR, t3.CO_MONE, t3.DE_CNTB_EMPR, t3.ST_GENE_ASTO, t1.ID_CNTA,        
             'CUENTAS DE ' + @VSDE_IDEN, t1.CO_CNTA_EMPR, t2.DE_CNTA_EMPR,        
      t3.NU_FACT_REDO, 1        
      From TTIDEN_CNTA t1, TMPLAN_EMPR t2, TTCNTB_EMPR t3        
      Where t3.CO_EMPR = @ISCO_EMPR        
      and t3.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
      and t1.CO_EMPR = @ISCO_EMPR        
      and t1.NU_CNTB_EMPR = t3.NU_CNTB_EMPR        
      and t1.ID_CNTA = @VSNU_CON3        
      and t1.NU_ANNO = 9999        
      and t2.CO_EMPR = t1.CO_EMPR        
      and t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR         
      and t2.NU_ANNO = t1.NU_ANNO        
        
    Insert into #TWCNTB_EMPR_Q01_1        
      Select T1.NU_CNTB_EMPR, T1.CO_MONE, T1.DE_CNTB_EMPR, T1.ST_GENE_ASTO, NULL,        
      NULL, NULL, NULL, T1.NU_FACT_REDO, 2        
      From TTCNTB_EMPR T1  
      Where T1.CO_EMPR = @ISCO_EMPR  
        And T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR  
 And NOT EXISTS (SELECT * FROM TTIDEN_OPER T2 WHERE T2.CO_EMPR = T1.CO_EMPR  
  And t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR  
  And t2.ID_OPRC = @VSNU_CON3)  
      Union  
    Select T3.NU_CNTB_EMPR, t3.CO_MONE, t3.DE_CNTB_EMPR, t3.ST_GENE_ASTO, t1.ID_OPRC,        
    'OPERACIONES DE ' + @VSDE_IDEN, t1.CO_OPRC_CNTB, t2.DE_OPRC,        
    t3.NU_FACT_REDO, 2        
    From TTIDEN_OPER t1, TMOPRC_CNTB t2,TTCNTB_EMPR t3     
    Where t3.CO_EMPR = @ISCO_EMPR         
        and t3.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
        and t1.CO_EMPR = @ISCO_EMPR        
        and t1.NU_CNTB_EMPR = t3.NU_CNTB_EMPR        
        and t1.ID_OPRC = @VSNU_CON3        
        and t2.CO_EMPR = t1.CO_EMPR         
        and t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB        
  End       
        
      Select @VNNU_CON1 = @VNNU_CON1 + 1         
        
 end        
        
 UPDATE #TWCNTB_EMPR_Q01_1        
  Set ID_CNTA_DESC = 'CUENTAS Y OPERACIONES DE COMPRAS'        
 WHERE ID_CNTA = '001'         
        
 UPDATE #TWCNTB_EMPR_Q01_1        
  Set ID_CNTA_DESC = 'CUENTAS Y OPERACIONES DE VENTAS'        
 WHERE ID_CNTA = '002'         
        
 Select DISTINCT * From #TWCNTB_EMPR_Q01_1        
  Where CO_MONE IS NOT Null        
 Order By NU_CNTB_EMPR, ID_CNTA, NU_ORDE    
        
Return        
/*------------------------------ Fin ------------------------------*/        
        


GO
